// 文件名：auth.ts
// 作者：系统自动生成
// 创建日期：2025-04-26
// 描述：Pinia store管理用户认证状态

import { defineStore } from 'pinia'
import { ref } from 'vue'

// 测试账号数据
const testAccounts = {
  admin: {
    username: 'admin',
    password: 'admin123',
    roles: ['admin']
  },
  teacher: {
    username: 'teacher',
    password: 'teacher123',
    roles: ['teacher']
  },
  parent: {
    username: 'parent',
    password: 'parent123',
    roles: ['parent']
  }
}

/**
 * 认证状态管理Store
 * 包含用户登录状态、角色信息等
 */
export const useAuthStore = defineStore('auth', () => {
  // 用户登录状态
  const isAuthenticated = ref(false)
  
  // 用户角色列表
  const userRoles = ref<string[]>([])
  
  /**
   * 登录方法
   * @param username 用户名
   * @param password 密码
   * @returns 登录是否成功
   */
  const login = (username: string, password: string) => {
    const account = Object.values(testAccounts).find(
      acc => acc.username === username && acc.password === password
    )
    
    if (account) {
      isAuthenticated.value = true
      userRoles.value = account.roles
      return true
    }
    return false
  }
  
  /**
   * 设置用户认证状态
   * @param status 认证状态
   */
  const setAuthStatus = (status: boolean) => {
    isAuthenticated.value = status
  }
  
  /**
   * 设置用户角色
   * @param roles 角色数组
   */
  const setUserRoles = (roles: string[]) => {
    userRoles.value = roles
  }
  
  return {
    isAuthenticated,
    userRoles,
    login,
    setAuthStatus,
    setUserRoles
  }
})